using System;
using System.ComponentModel;
using ZoneFiveSoftware.Common.Data;

namespace FilteredStatistics.Common
{
    // Named zones for a certain FilterCriteria
    interface INamedZone
    {
        // A localized name for the filter
        String Name { get; }

        // Returns the valid times for this named zone.  This can be activity
        //  dependent, in which case you are in charge of updating the valid
        //  times when the activity changes.  These valid times are within the
        //  activities duration WITH PAUSES INCLUDED.  Don't remove the pauses,
        //  I do it on my side for uniformity between plugins
        IValueRangeSeries<DateTime> ValidTimes { get; }

        // Event to trigger when the valid times change.  This can be when the
        //  activity changed or it's data has changed.
        event PropertyChangedEventHandler ValidTimesChanged;
    }
}
